JavaFX ব্যবহার করে আপনি Web-based Content যেমন ওয়েব পেজ, HTML, CSS, JavaScript ইত্যাদি অ্যাপ্লিকেশনের ভিতরে অন্তর্ভুক্ত করতে পারেন। JavaFX WebView ক্লাসের মাধ্যমে আপনি ওয়েব কনটেন্ট প্রদর্শন করতে পারেন। WebView একটি UI উপাদান যা একটি ওয়েব ব্রাউজারের মতো আচরণ করে এবং HTML কন্টেন্ট রেন্ডার করতে সক্ষম।
JavaFX এর WebView দিয়ে ওয়েব কনটেন্ট বা ওয়েব পেজ ইন্টিগ্রেট করা হয়, যা জাভা অ্যাপ্লিকেশনগুলির মধ্যে ওয়েব কনটেন্টের সাথে ইন্টারঅ্যাক্টিভভাবে কাজ করতে সহায়ক।
JavaFX WebView ব্যবহার করে ওয়েব কনটেন্ট প্রদর্শন করার উদাহরণ
এখানে একটি উদাহরণ দেওয়া হয়েছে যেখানে JavaFX WebView ব্যবহার করে একটি ওয়েব পেজ প্রদর্শিত হচ্ছে। এছাড়া, JavaScript দিয়ে ওয়েব পেজের ইন্টারঅ্যাকশনও করা হয়েছে।
ধাপ 1: JavaFX WebView ব্যবহার করা
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewExample extends Application {
@Override
public void start(Stage primaryStage) {
// WebView তৈরি করা
WebView webView = new WebView();
// WebEngine তৈরি করা যা ওয়েব পেজ রেন্ডার করবে
WebEngine webEngine = webView.getEngine();
// ওয়েব পেজ লোড করা
webEngine.load("https://www.wikipedia.org");
// ওয়েব পেজ লোড না হলে একটি এলার্ট দেখানো
webEngine.setOnStatusChanged(event -> {
if (webEngine.getLocation().equals("about:blank")) {
Alert alert = new Alert(AlertType.ERROR);
alert.setTitle("Error");
alert.setHeaderText("Web Page Load Error");
alert.setContentText("Could not load the web page.");
alert.showAndWait();
}
});
// WebView-টি StackPane এর মধ্যে যুক্ত করা
StackPane root = new StackPane();
root.getChildren().add(webView);
// Scene তৈরি করা
Scene scene = new Scene(root, 1024, 768);
// Stage সেট করা এবং দেখানো
primaryStage.setTitle("JavaFX WebView Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- WebView:
WebViewহলো JavaFX এর একটি ইউজার ইন্টারফেস উপাদান যা একটি ওয়েব পেজ বা HTML কন্টেন্ট প্রদর্শন করতে ব্যবহৃত হয়।
- WebEngine:
WebEngineহল একটি ইঞ্জিন যাWebViewএর ভিতরে ওয়েব কন্টেন্ট রেন্ডার করে। এটি ওয়েব কনটেন্ট লোড করার জন্য ব্যবহৃত হয় (যেমন, ওয়েব পেজ লোড করা)।webEngine.load("URL"): ওয়েব পেজের URL লোড করতে এই মেথডটি ব্যবহার করা হয়। এখানেhttps://www.wikipedia.orgলোড করা হয়েছে।
- Error Handling:
webEngine.setOnStatusChanged()ব্যবহার করা হয়েছে ওয়েব পেজ লোডিংয়ের স্ট্যাটাস ট্র্যাক করার জন্য। যদি ওয়েব পেজটি লোড না হয়, তবে একটি Alert প্রদর্শিত হবে।
- Scene এবং Stage:
StackPaneএকটি লেআউট প্যান, যেটির মধ্যেWebViewযুক্ত করা হয়েছে।Sceneএর মাধ্যমে ওয়েব কন্টেন্টের লেআউট সেট করা হয়েছে, এবংStage-এ সেট করা হয়েছে।
ধাপ 2: JavaScript ইন্টিগ্রেশন
আপনি JavaScript এর সাথে ইন্টিগ্রেশন করে JavaFX অ্যাপ্লিকেশন থেকে ওয়েব কন্টেন্টের উপর অ্যাকশন নিতে পারেন। WebEngine এর executeScript() মেথড ব্যবহার করে আপনি JavaScript কোড এক্সিকিউট করতে পারেন।
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewJavaScriptExample extends Application {
@Override
public void start(Stage primaryStage) {
// WebView তৈরি করা
WebView webView = new WebView();
// WebEngine তৈরি করা
WebEngine webEngine = webView.getEngine();
// ওয়েব পেজ লোড করা
webEngine.load("https://www.wikipedia.org");
// কিছু JavaScript এক্সিকিউট করা
webEngine.setOnAlert(event -> {
String jsCode = "document.getElementById('searchInput').value = 'JavaFX';"; // Wikipedia Search Box
webEngine.executeScript(jsCode); // JavaScript কোড এক্সিকিউট করা
});
// WebView StackPane এর মধ্যে যুক্ত করা
StackPane root = new StackPane();
root.getChildren().add(webView);
// Scene তৈরি করা
Scene scene = new Scene(root, 1024, 768);
// Stage সেট করা এবং দেখানো
primaryStage.setTitle("JavaFX WebView with JavaScript Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
ব্যাখ্যা:
- executeScript():
executeScript()মেথডটি JavaScript কোড রান করানোর জন্য ব্যবহার করা হয়। এখানে, আমরা Wikipedia এর সার্চ ইনপুট বক্সে "JavaFX" টেক্সট প্রবেশ করানোর জন্য JavaScript কোড ব্যবহার করেছি।
- WebEngine's
setOnAlert():- এটি JavaScript-এর এলার্ট মেসেজ ট্র্যাক করতে ব্যবহৃত হয়, তবে এখানে আমরা কোড লেখার মাধ্যমে জাভা এবং জাভাস্ক্রিপ্টের মধ্যে ইন্টারঅ্যাকশন করেছি।
JavaFX WebView এর সুবিধা:
- Web-based Content Rendering:
- JavaFX WebView আপনাকে JavaFX অ্যাপ্লিকেশনের ভিতরে ওয়েব কন্টেন্ট (HTML, CSS, JavaScript) রেন্ডার করতে সহায়তা করে।
- JavaScript Integration:
- আপনি JavaScript এর মাধ্যমে ওয়েব পেজের সাথে ইন্টারঅ্যাক্ট করতে পারেন এবং এটি JavaFX অ্যাপ্লিকেশনের সাথে ইন্টিগ্রেট করতে পারেন।
- Cross-platform Compatibility:
- JavaFX অ্যাপ্লিকেশনটি যে প্ল্যাটফর্মে চলে (Windows, macOS, Linux) সেখানে WebView ওয়েব কন্টেন্ট দেখাতে সক্ষম, এবং এতে cross-platform সমর্থন রয়েছে।
- WebView Features:
- আপনি বিভিন্ন ওয়েব পেজ লোড করতে পারেন, ওয়েব কন্টেন্টে স্টাইল পরিবর্তন করতে পারেন, এবং ওয়েব কন্টেন্টের সঙ্গে JavaScript ও অন্যান্য ওয়েব টেকনোলজির মাধ্যমে ইন্টারঅ্যাক্ট করতে পারেন।
JavaFX WebView একটি শক্তিশালী টুল যা আপনাকে ওয়েব কনটেন্ট, HTML, JavaScript এবং CSS কে আপনার ডেস্কটপ অ্যাপ্লিকেশনে ইন্টিগ্রেট করার সুযোগ দেয়। আপনি JavaFX অ্যাপ্লিকেশনের মধ্যে ওয়েব ব্রাউজিং বা ওয়েব কন্টেন্ট প্রদর্শন করতে পারেন এবং JavaScript বা অন্য প্রযুক্তির মাধ্যমে সেটির সাথে ইন্টারঅ্যাক্ট করতে পারেন।
Read more